package pe.seleccion;


import pe.algenetico.MiRandom;
import pe.cromosoma.Cromosoma;
import pe.cromosoma.FactoriaCromosoma;

public class SeleccionTorneoDeterminista implements Seleccion{
	public Cromosoma[] seleccion(int tam_pob, int tam_elite, Cromosoma[] pob, MiRandom ran, int funcion, int param){
		Cromosoma[] nuevaPob = new Cromosoma[tam_pob-tam_elite];
		for (int i = 0; i<tam_pob-tam_elite;i++){
			Cromosoma mejor = pob[ran.r.nextInt(tam_pob-tam_elite)];
			for(int j = 0; j<param;j++){
				Cromosoma otro = pob[ran.r.nextInt(tam_pob-tam_elite)];
				if (mejor.getAptitud()>otro.getAptitud()) mejor = otro;
			}
			nuevaPob[i]= FactoriaCromosoma.getCromosoma(funcion, mejor);	
		}
		return nuevaPob;
	}
}
